Rule previewing

ABSTRACT

One embodiment of the invention provides a computer-readable medium containing therein instructions that, when executed, generate on a display device a graphical user interface (GUI) for creating or revising a rule that contains a condition and an action to be taken when the condition is satisfied. The GUI includes a rule-editing area along with first and second user-selectable elements. The rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element. The rule-editing area is also configured to accept user input to create or revise the action of the rule upon user selection of the second element. The GUI further includes a rule-preview area that is configured to provide a display of a user-understandable representation of both the condition and the action.

TECHNICAL FIELD

This invention relates to the design of text-processing rules in computing systems.

BACKGROUND

Text-processing systems, such as search systems or email response management systems, may need to process an abundance of textual information. For example, an email response management system may need to process as many as 400,000 incoming email messages each day. These incoming email messages may relate to any number of different business scenarios or processes. For example, certain customers may submit service order requests to their service providers via email. Other customers may submit complaints or assistance requests to certain providers via email.

To effectively handle a high volume of textual information, text-processing systems must be able to analyze the information in an efficient and intelligent fashion. Many of these systems include rule-based engines that use rules to analyze textual information. Each rule typically contains a set of conditions and actions. The rule-based engines trigger certain actions when corresponding conditons are satisfied. For example, an email response management system may route an individual email to a particular person if the email contains certain keywords.

Typically, a rule designer will define and modify rules before they are utilized by a rule-based engine in a run-time system. Prior applications have provided the rule designer with various ways of defining and editing these rules. For example, certain applications allow the designer to define the rules using a long sentence or block structure. In these applications, the designer will typically enter all of the conditions and actions for the rule in a single sentence or in a series of phrases.

Other applications may utilize a graphical user interface (GUI) to present the conditions and actions of a rule side by side. In these applications, the rule designer is able to see a condition and action of the rule at the same time, and is then able to edit either the condition or action as necessary. These applications may also provide a preview area below the condition and action areas to provide the designer with a preview of the rule as it is edited.

There are other existing applications that make use of selectable elements, such as graphical tabs, in the GUI. In these applications, a user is able to view and edit different portions of a rule in a sequential fashion. For example, the user may first select a “condition” graphical tab to view and edit the conditions for the rule, and may later select an “action” graphical tab to view and edit the actions for the rule. In these applications, however, the designer is not able to view the rule conditions and actions at the same time.

SUMMARY

Various embodiments of the invention are provided herein. One embodiment of the invention provides a computer-readable medium containing therein instructions that, when executed, generate on a display device a graphical user interface (GUI) for creating or revising a rule that contains a condition and an action to be taken when the condition is satisfied. The GUI includes a rule-editing area along with first and second user-selectable elements. The rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element. The rule-editing area is also configured to accept user input to create or revise the action of the rule upon user selection of the second element. The GUI further includes a rule-preview area that is configured to provide a display of a user-understandable representation of both the condition and the action.

Various embodiments of the invention may have certain benefits and advantages. For example, the use of a rule preview area allows a rule designer to see a preview of an entire rule as specific portions of the rule are modified. This rule may later be used at run time to process textual information, such as information contained within an incoming email message.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1A is a screen display of a graphical user interface (GUI) that may be used to define and preview a text-processing rule, according to one embodiment.

FIG. 1B is a screen display of the GUI shown in FIG. 1A, wherein a user has deleted a rule condition.

FIG. 2 is a screen display of the GUI shown in FIG. 1B, wherein the GUI allows the user to edit a rule action.

FIG. 3 is a block diagram of a computing system that may be used for displaying the various GUI's shown in FIG. 1A, FIG. 1B, and FIG. 2, according to one embodiment.

FIG. 4 is a block diagram of a system that may be used to administer and manage text-processing rules, according to one embodiment.

DETAILED DESCRIPTION

FIG. 1A is a screen display of a graphical user interface (GUI) 100 that may be used to preview a text-processing rule, according to one embodiment. In this embodiment, the GUI 100 may be used by designers to create or revise rules that can later be used to process textual information, such as information contained within email messages or within textual search requests. These rules typically include a set of conditions and a set of actions that are triggered when certain conditions are satisfied. The GUI 100 includes a first selectable element 108 and a second selectable element 110. A user, such as a rule designer, may select the first selectable element 108 to create or revise a first portion of the text-processing rule in a rule-editing area 102. The user may alternatively select the second selectable element 110 to create or revise a second portion of the text-processing rule in the rule-editing area 102. The GUI 100 also includes a rule-preview area 104 that is configured to provide the user with a user-understandable representation of both the first and second portions 124 and 126 of the text-processing rule 128. As shown in FIG. 1A, the user has selected the selectable element 108 and is therefore able to edit the first portion of the text-processing rule in the editing area 102.

The GUI 100 shown in FIG. 1A includes various screen components. A user may select any of selectable elements 106, 108, or 110. In the embodiment shown in FIG. 1A, the selectable element 106 is adjacent to the selectable element 108, which is then adjacent to the selectable element 110. The selectable elements 106, 108, and 110 may be various forms of elements, such as button or text (e.g., hypertext) elements. In the example shown in FIG. 1A, the selectable elements 106, 108, and 110 are graphical tabs. The selectable element 106 is associated with the definition details of the rule 128. For example, the definition details may include a name, a creation date, modification dates, etc. of the rule 128. If the user selects the selectable element 106, the definition details would then be displayed to the user (which is not shown in FIG. 1A). The selectable element 108 is associated with the portion 124 of the rule 128. If the user selects the selectable element 108, the editing area 102 will provide a textual display of an editable version of the portion 124 of the rule 128, as shown in FIG. 1A. The portion 124 includes text that pertains to one or more conditions of the rule 128. Once the portion 124 of the rule 128 is displayed in the editing area 102, the user may edit the portion 124.

The editing area 102 of the GUI 100 contains various text-entry fields and menus that allow the user to edit the portion 124 of the rule 128. These fields and menus are shown in columns 116, 118, and 120. The portion 124 of the rule 128 displayed in FIG. 1A contains two distinct conditions. The user may select an attribute name for each condition using the column 116. The user may click on a button to view of list of options for the attribute name, and may then select one of the attribute names from the list. In one embodiment, the list of options is displayed in a pop-up window. In one embodiment, the GUI 100 accesses an attribute-name repository to determine which attribute names will be included in the list of options. As shown in FIG. 1A, the user has selected the attribute name “country” for each of the two defined conditions. The user may also select an operator for each condition using the column 118. The user may utilize a pull-down menu to view a list of options for the operator, and may then select one of the operators from the list. In one embodiment, the GUI 100 accesses an operator repository to determine which operators will be included in the list of options. As shown in FIG. 1A, the user has selected the operator “contains” for each of the two defined conditions. In one embodiment, the user may have the option of selecting an operator “does not contain” in the column 118 for the first and/or second defined conditions.

The user may also enter the attribute value for each condition using the text-entry fields that are included within the column 120. These attribute values relate to the attribute names that are shown in the column 116. The user may simply enter text into the text-entry fields within the column 120 to specify the corresponding attribute values. As shown in FIG. 1A, the user has entered the attribute value “United States” in the first defined condition, and has entered the attribute value “US” in the second defined condition. The user may specify the case sensitivity of the attribute values by using the selectors in the column 122. In the example shown in FIG. 1A, the user has specified in the column 122 that the attribute value “United States” is case sensitive, but that the attribute value “US” is not case sensitive.

The user may specify the condition matching characteristics by specifying the logical operators in the column 114. These logical operators connect the various conditions. The logical operators may be set to “And,” “Or,” or “Not.” In the example shown in FIG. 1A, the portion 124 of the rule 128 contains two distinct conditions. The user has specified in the column 114 that these two conditions are connected by a logical “Or” operator. The user may change the logical operators by directly changing the designations within the column 114. Alternatively, the user may select a button 112 to change all of the designations for the column 114. In one embodiment, the button 112 is a toggle button. If the user selects the button 112 a first time, all of the logical operators in the column 114 will change to “And” (i.e., match all). If the user selects the button 112 a second time, all of the logical operators in the column 114 will change to “Or” (i.e., match any).

The selectable element 110 is associated with the portion 126 of the rule 128. If the user selects the selectable element 110, the editing area 102 will provide a textual display of an editable version of the portion 126 of the rule 128. In FIG. 2, which is described in more detail below, the editing area 102 includes an example of an editable version of the portion 126 of the rule 128.

The GUI 100 also includes the preview area 104 that provides a textual display of the rule 128 in a read-only format. The entire rule 128, including the portions 124 and 126, are displayed. Because the display is in a read-only format, the user cannot edit the portions 124 or 126 directly within the preview area 104. However, the user is able to see a holistic and dynamic view of the rule 128 as it is currently defined. If the user, for example, modifies the portion 124 of the rule 128 in the editing area 102 shown in FIG. 1A, the preview area 104 will automatically display the updated portion 124 in a read-only format. In addition, the user can also see the portion 126 of the rule 128, even though the user has selected the selectable element 108 to view and edit the portion 124 of the rule 128 in the editing area 102. In one embodiment, the preview area 104 may be capable of providing a display of the rule 128 in a read-write format. In this embodiment, the user may be able to both view and change the portions 124 and/or 126 of the rule 128 directly within the preview area 104.

The rule 128 shown in FIG. 1A may be used during run time in a rule-based system to process textual information. For example, the rule 128 could be used to analyze the contents of an incoming email message. The portion 124 of the rule 128 contains two conditions. Either one of these conditions may be satisfied because they are connected by a logical “or” operator. The first condition tests whether the incoming email message has a field, or attribute, named “country” that contains a value of “United States”. For example, the incoming email message may have a designated field, or attribute, called “country” that designates the origin of the message. If this field or attribute contains the value “United States,” then the first listed condition will be satisfied. Alternatively, if this field or attribute contains a value of “US”, then the second listed condition will be satisfied. If either the first or second condition is satisfied, then the action specified in the portion 126 of the rule 128 will be triggered. This action specifies that the email message is to be redirected to the address of “us@exchange.SAP.com” using a software agent called “Info Outgoing Agent”. This software agent may be responsible for re-routing incoming email messages to the appropriate personnel as they arrive from customers. For example, certain personnel may be responsible for handling email messages arriving from customers located within the United States. The rule 128 will assist in routing these email messages appropriately.

FIG. 1B is a screen display of the GUI 100 shown in FIG. 1A, wherein a user has deleted a rule condition in the editing area 102. As shown previously in FIG. 1A, the user had initially added two rule conditions in the editing area 102 that were separated by a logical “Or” operator. In FIG. 11B, the user has deleted the condition “country contains ‘US’”, such that the only remaining condition shown in the editing area 102 is “country contains ‘United States’”. To delete the condition, the user may use a delete menu option, or may simply remove the attribute name, operator, and attribute value entries for the condition.

After the user has deleted the condition in the editing area 102, the user may view a user-understandable representation of a revised rule 152 as shown in the preview area 104. As shown in FIG. 1B, the rule 152 includes a modified portion 150 and the portion 126, which was previously shown in FIG. 1A. The modified portion 150 of the rule 152 includes only the updated set of conditions as specified by the user in the editing area 102. As such, the preview area 104 provides the user with a holistic and current view of the entire rule 152. The user can see both the modified portion 150 and the portion 126 of the rule 152 in the preview area 104, even though the user has selected the selectable element 108 in FIG. 11B and can therefore only edit rule conditions in the editing area 102. The user can also see the most current view of the modified portion 150 in the preview area 104 as the user makes modifications in the editing area 102.

FIG. 2 is a screen display of the GUI 100 shown in FIG. 11B, wherein the GUI 100 allows a user to edit a rule action. The user is able to select the selectable element 110 in the GUI 100 to edit the portion 126 of the rule 152 in the editing area 102. As shown in the preview area 104 in FIG. 2, the portion 126 corresponds to a rule action. At run time, this action is triggered when the condition specified in the portion 150 of the rule 152 is satisfied.

The editing area 102 of the GUI 100 contains various text-entry fields and menus that allow the user to edit the portion 126 of the rule 152. These fields and menus are shown in columns 202, 204, and 206. Using the column 202, the user may specify the logical operators (such as “and”, “or”, and “not”) that are used to connect the various rule actions. The portion 126 of the rule 152 only contains a single action, but the user could also add additional actions and then specify the corresponding logical operators in the column 202. The user is able to specify the action names, attributes, and values using the text-entry fields and menus in the columns 204 and 206. As shown in the example in FIG. 2, the user has used a pull-down menu to select an action name 208 of “Redirect to” in the column 204. The action name 208 corresponds to a redirect action. After the user has selected the action name 208, corresponding action attributes 210 and 212 are displayed. The specific attributes that are displayed in the column 204 depend on particular action name that is selected. The attribute 210 (“Address”) and the attribute 212 (“Using agent”) are specifically associated with the action name 208 (“Redirect to”). The user is able to select the values that correspond to the attributes 210 and 212 in the column 206. In one embodiment, the user may use pop-up menus to select values. In one embodiment, the user may enter values using text-entry fields. As shown in the editing area 102 of the GUI 100, the user has selected a value of “us@exchange.SAP.com” for the attribute 210, and a value of “Info Outgoing Agent” for the attribute 212.

FIG. 3 is a block diagram of a computing system 300 that may be used for displaying the various GUI's shown in FIG. 1A, FIG. 1B, and FIG. 2, according to one embodiment. The system 300 includes a processor 302, a memory 304, a storage device 306, and an input/output device 308. Each of the components 302, 304, 306, and 308 are interconnected using a system bus. The processor 302 is capable of processing instructions for execution within the system 300. In one embodiment, the processor 302 is a single-threaded processor. In another embodiment, the processor 302 is a multi-threaded processor. The processor 302 is capable of processing instructions stored in the memory 304 or on the storage device 306 to display graphical information for a GUI on the input/output device 308.

The memory 304 stores information within the system 300. In one embodiment, the memory 304 is a computer-readable medium. In one embodiment, the memory 304 is a volatile memory unit. In another embodiment, the memory 304 is a non-volatile memory unit.

The storage device 306 is capable of providing mass storage for the system 300. In one embodiment, the storage device 306 is a computer-readable medium. In various different embodiments, the storage device 306 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.

The input/output device 308 provides input/output operations for the system 300. In one embodiment, the input/output device 308 includes a keyboard and/or pointing device. In one embodiment, the input/output device 308 includes a display unit for displaying the GUI's shown in FIG. 1A and FIG. 2.

FIG. 4 is a block diagram of a system 400 that may be used to administer and manage text-processing rules, according to one embodiment. In this embodiment, the system 400 includes the computing system 300 that is shown in FIG. 3. As shown, the computing system 300 is a rule administration system that is used to create and modify text-processing rules 406 in a management system 402. The text-processing rules 406 each include a set of conditions and actions. The management system 402 also includes a rule-based engine 408 that processes the text-processing rules 406.

A customer system 404 is also coupled to the management system 402. In one embodiment, the customer system 404 contains a processor, a memory, a storage device, and an input/output device, similar to the computing system 300. During operation, the customer system 404 sends textual information to the management system 402. For example, the customer system 404 may send email or search query information to the management system 402. The management system 402 is then capable of processing the incoming textual information by using the text-processing rules 406 and the rule-based engine 408. The rule-based engine 408 processes the textual information along with the rule actions in the text-processing rules 406 to determine if certain actions are to be triggered. For example, in one embodiment, the rule-based engine 408 may determine that an automatic acknowledgement or response email message is to be sent back to the customer system 404. This acknowledgement or response will be triggered by the rule-based engine 408 as a result of an action of one of the text-processing rules 406. Any number of different actions may also be triggered by the rule-based engine 408.

A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the text-processing rules may be used to process text contained within search requests, interactive chat messages, and the like. The rules are used to determine if certain conditions are satisfied, based on textual content, and then trigger various actions, such as searching various databases, displaying graphical alerts, sending response emails to a customer, and the like. For example, in various embodiments of the invention, certain functionality may be implemented by hardware, software, or a combination of hardware and software. Various forms of computer-readable media may be utilized to store computer-executable instructions. These computer-readable media may include storage devices, memory devices, propagated signals, and the like. Accordingly, other embodiments are within the scope of the following claims. 

1. A computer-readable medium containing therein instructions that, when executed, generate on a display device a graphical user interface (GUI) for creating or revising a rule that contains a condition and an action to be taken when the condition is satisfied, the GUI comprising: a rule-editing area; first and second user-selectable elements, wherein the rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element, and wherein the rule-editing area is configured to accept user input to create or revise the action of the rule upon user selection of the second element; and a rule-preview area configured to provide a display of a user-understandable representation of both the condition and the action.
 2. The computer-readable medium of claim 1, wherein the rule-preview area is configured to provide a display of a user-understandable representation of both the rule condition and the rule action in a read-only format.
 3. The computer-readable medium of claim 1, wherein the rule contains at least two conditions, and wherein the rule-editing area is configured to accept user input to create or modify any the conditions upon user selection of the first element.
 4. The computer-readable medium of claim 1, wherein the rule contains at least two actions, and wherein the rule-editing area is configured to accept user input to create or modify any of the actions upon user selection of the second element.
 5. The computer-readable medium of claim 1, wherein the condition includes an attribute name, an operator, and an attribute value.
 6. The computer-readable medium of claim 5, wherein the rule-editing area contains: a first menu having a set of user-selectable options for determining the attribute name of the condition; a second menu having a set of user-selectable options for determining the operator of the condition; and a text-entry field to accept user input for determining the attribute value of the condition.
 7. The computer-readable medium of claim 1, wherein the action includes an action name and an action value.
 8. The computer-readable medium of claim 7, wherein the rule-editing area contains: a menu having a set of user-selectable options for determining the action name of the action; and a text-entry field to accept user input for determining the action value of the action.
 9. The computer-readable medium of claim 7, wherein the action further includes an attribute name and an attribute value.
 10. The computer-readable medium of claim 1, wherein the first user-selectable element is adjacent to the second user-selectable element.
 11. The computer-readable medium of claim 1, wherein the first and second user-selectable elements are each either user-selectable button or user-selectable text elements.
 12. The computer-readable medium of claim 1, wherein the first and second user-selectable elements are each graphical tabs.
 13. The computer-readable medium of claim 1, wherein the rule may be used to process textual information.
 14. The computer-readable medium of claim 13, wherein the rule may be used to process textual information contained in an email message.
 15. A graphical user interface (GUI) for creating or revising a rule that contains a condition and an action to be taken when the condition is satisfied, the GUI comprising: a rule-editing area; first and second user-selectable elements, wherein the rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element, and wherein the rule-editing area is configured to accept user input to create or revise the action of the rule upon user selection of the second element; and a rule-preview area configured to provide a display of a user-understandable representation of both the condition and the action.
 16. A computer-implemented method for providing a graphical user interface (GUI) that may be used to create or revise a rule that contains a condition and an action to be taken when the condition is satisfied, the method comprising: providing a rule-editing area; providing first and second user-selectable elements, wherein the rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element, and wherein the rule-editing area is configured to accept user input to create or revise the action of the rule upon user selection of the second element; and providing a rule-preview area configured to provide a display of a user-understandable representation of both the condition and the action.
 17. A computer-readable medium having computer-executable instructions contained therein for performing a method to provide a graphical user interface (GUI) that may be used to create or revise a rule that contains a condition and an action to be taken when the condition is satisfied, the method comprising: providing a rule-editing area; providing first and second user-selectable elements, wherein the rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element, and wherein the rule-editing area is configured to accept user input to create or revise the action of the rule upon user selection of the second element; and providing a rule-preview area configured to provide a display of a user-understandable representation of both the condition and the action.
 18. A system for providing a graphical user interface (GUI) that may be used to create or revise a rule that contains a condition and an action to be taken when the condition is satisfied, the method comprising, wherein the system is programmed to: provide a rule-editing area; provide first and second user-selectable elements, wherein the rule-editing area is configured to accept user input to create or revise the condition of the rule upon user selection of the first element, and wherein the rule-editing area is configured to accept user input to create or revise the action of the rule upon user selection of the second element; and provide a rule-preview area configured to provide a display of a user-understandable representation of both the condition and the action. 